from ..utils.crypto_utils import crypto_utils
from ..utils.crypto_utils import server_utils
from ..utils.config_reader import read_util
from ..utils.logger import logger
from src.backend.backend_user import backend_user
from src.backend.backend_course import backend_course
from .app_base import AppBase


class AppUser:
    """
    用户模块服务类，提供与用户相关的各种操作。
    """

    @staticmethod
    @server_utils.handle_exceptions("用户-查询年级信息失败")
    def find_grade_selection(user_data):
        """
        用户-查询年级信息
        """
        return crypto_utils.app_post_request(url=f"/v1/common/findGradeSelection", data=crypto_utils.prepare_data(user_data))

    @staticmethod
    @server_utils.handle_exceptions("用户-设置年级信息失败")
    def update_user_class(user_data):
        """
        用户-设置年级信息
        """
        return crypto_utils.app_post_request(url=f"/v1/userInfo/updateUserClass", data=crypto_utils.prepare_data(user_data))

    @staticmethod
    @server_utils.handle_exceptions("用户-设置考试时间失败")
    def set_exam_time(user_data):
        """
        用户-设置考试时间
        """
        return crypto_utils.app_post_request(url=f"/v2/userSetting/save", data=crypto_utils.prepare_data(user_data))

    @staticmethod
    @server_utils.handle_exceptions("用户-查询考试倒计时失败")
    def countdown_to_exam(user_data):
        """
        用户-查询考试倒计时
        """
        return crypto_utils.app_post_request(url=f"/v2/userSetting/countdown/detail", data=crypto_utils.prepare_data(user_data))


app_user = AppUser()
